gtkarray: Create GPtrArray in insert() if we have to
authorTimm Bäder <mail@baedert.org>
Wed, 6 May 2020 08:24:15 +0000 (10:24 +0200)
committerTimm Bäder <mail@baedert.org>
Sun, 10 May 2020 06:44:20 +0000 (08:44 +0200)
gtk/gtkarrayimplprivate.h

index c1355205fd48f6d2ec97fc0192de86ab40ca4672..8a669f2a4091a3e7130cb9423868cb5177c2a347 100644 (file)
@@ -88,6 +88,16 @@ gtk_array_insert (GtkArray *self,
       return;
     }
 
+  if (G_UNLIKELY (!self->ptr_array))
+    {
+      guint i;
+
+      self->ptr_array = g_ptr_array_new_full (self->reserved_size, NULL);
+
+      for (i = 0; i < self->len; i++)
+        g_ptr_array_add (self->ptr_array, self->stack_space[i]);
+    }
+
   g_assert (self->ptr_array);
   g_ptr_array_insert (self->ptr_array, index, element);
   self->len++;